﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using DTO;
using DAL;
using System.Data;

namespace BLL
{
    public class HinhAnhBLL
    {
        #region Khai báo
        private List<HinhAnhDTO> _lst;
        private HinhAnhDAL _haDAL;
        private HinhAnhDTO _haDTO;
        #endregion

        #region Khởi tạo
        public HinhAnhBLL()
        {
            //_lstHA = new List<HinhAnhDTO>();
            _haDAL = new HinhAnhDAL();
        }
        #endregion

        #region Lay danh sach hinh anh cua 1 san pham
        public List<HinhAnhDTO> LayDanhSachHinhMotSanPham(string masp)
        {
            try
            {
                return _haDAL.GetListHinhAnhMotSanPham(masp);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        #endregion

        #region Phương thức lấy toàn bộ hình ảnh
        /// <summary>
        /// Phương thức lấy toàn bộ hình ảnh
        /// </summary>
        /// <returns></returns>
        public List<HinhAnhDTO> GetListHinhAnh()
        {
            _haDAL = new HinhAnhDAL();
            _lst = new List<HinhAnhDTO>();

            try
            {
                _lst = _haDAL.GetListHinhAnh();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _lst;
        }
        #endregion

        #region Phương thức getHinhAnh từ 1 mã sản phẩm
        /// <summary>
        /// Phương thức getHinhAnh từ 1 mã sản phẩm
        /// </summary>
        /// <param name="masp">string</param>
        /// <returns>HinhAnhDTO</returns>
        public List<HinhAnhDTO> GetListHinhAnhTheoMaSanPham(string masp)
        {
            _haDAL = new HinhAnhDAL();
            _lst = new List<HinhAnhDTO>();
            try
            {
                _lst = _haDAL.GetListHinhAnhTheoMaSanPham(masp);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _lst;
        }
        #endregion

        #region Phương thức get hình ảnh mặc định của 1 sản phẩm dựa vào mã sản phẩm
        /// <summary>
        /// Phương thức get hình ảnh mặc định của 1 sản phẩm dựa vào mã sản phẩm
        /// </summary>
        /// <param name="masp">string</param>
        /// <returns>HinhAnhDTO</returns>
        public HinhAnhDTO GetHinhAnhMacDinh(string masp)
        {
            _haDAL = new HinhAnhDAL();
            _haDTO = new HinhAnhDTO();

            try
            {
                _haDTO = _haDAL.GetHinhAnhMacDinh(masp);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _haDTO;
        }
        #endregion

        #region Phương thức get hình ảnh dựa vào mã hình ảnh
        /// <summary>
        /// Phương thức get hình ảnh dựa vào mã hình ảnh
        /// </summary>
        /// <param name="maha"></param>
        /// <returns></returns>
        public HinhAnhDTO GetHinhAnh(int maha)
        {
            _haDAL = new HinhAnhDAL();
            _haDTO = new HinhAnhDTO();

            try
            {
                _haDTO = _haDAL.GetHinhAnh(maha);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _haDTO;
        }
        #endregion        

        #region Phương thức thêm 1 ảnh
        /// <summary>
        /// Phương thức thêm 1 ảnh
        /// </summary>
        /// <param name="nsp">HinhAnhDTO</param>
        /// <returns>string</returns>
        public int Them(HinhAnhDTO ha)
        {
            _haDAL = new HinhAnhDAL();

            int index = -1;
            try
            {
                index = _haDAL.Them(ha);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return index;
        }
        #endregion

        #region Phương thức sửa thông tin 1 hình ảnh
        /// <summary>
        /// Phương thức sửa thông tin 1 hình ảnh
        /// </summary>
        /// <param name="nsp">HinhAnhDTO</param>
        /// <returns>string</returns>
        public int Sua(HinhAnhDTO ha)
        {
            _haDAL = new HinhAnhDAL();

            int index = -1;
            try
            {
                index = _haDAL.Sua(ha);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return index;
        }
        #endregion

        #region Phương thức xóa 1 hình ảnh
        /// <summary>
        /// Phương thức xóa 1 hình ảnh
        /// </summary>
        /// <param name="ha">HinhAnhDTO</param>
        /// <returns>int</returns>
        public int Xoa(HinhAnhDTO ha)
        {
            _haDAL = new HinhAnhDAL();

            int index = -1;
            try
            {
                index = _haDAL.Xoa(ha);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return index;
        }
        #endregion

        #region Phương thức GetCountAnh dựa theo mã sản phẩm
        /// <summary>
        /// Phương thức GetCountAnh dựa theo mã sản phẩm
        /// </summary>
        /// <param name="masp"></param>
        /// <returns></returns>
        public int GetCountAnh(string masp)
        {
            _haDAL = new HinhAnhDAL();
            int dem = 0;
            try
            {
                dem = _haDAL.GetCountAnh(masp);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return dem;
        }
        #endregion
    }
}